跳到主要内容

NC22 合并两个有序的数组

https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

有点无语,这么简单的题居然花了一个小时,,,,果然写算法题不拿纸,纯靠脑补是不行的,说是双指针,其实这种应该引入第三个指针来指向整体的位置

package main

/**
*
* @param A int整型一维数组
* @param B int整型一维数组
* @return void
*/
func merge(A []int, m int, B []int, n int) {
idA, idB, idx := m-1, n-1, m + n - 1
for idA >= 0 && idB >= 0 {
if B[idB] < A[idA] {
A[idx] = A[idA]
idA--
} else {
A[idx] = B[idB]
idB--
}
idx--
}

// 如果 idB 还有剩余则继续遍历完
for idB >= 0 {
A[idx] = B[idB]
idB--
idx--
}
}